<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <Script>
        /*
            闭包
                1.函数嵌套函数
                2.内部函数使用外部函数的形参和变量
                3.被引用的形参和变量就不会被【垃圾回收机制所回收】

                优：
                    1.希望一个变量常驻在内存中
                    2.避免全局变量污染
                    3.可以声明私有成员
        */
       var ccc = (function(){
           var a = 2;
           return function(){
               a++;
               alert(a);
           }
       }())
       ccc();
       ccc();

       window.onload = function(){
           var oBtns = document.getElementsByTagName("button");
           for(var i=0;i<oBtns.length;i++){
               oBtns[i].onclick = (function(index){
                   return function(){
                       alert(index);
                   }
               })(i)
           }
       }
    </Script>
</head>
<body>
    <button>1</button>
    <button>2</button>
    <button>3</button>
</body>
</html>